<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        //函数也可以先用，再定义。这就是函数的函数声明，函数的定义会在预解析阶段被提升。
        //匿名函数不能提升  var fun=function(){}  因为匿名函数没有名字，而给了变量。变量的提升只能提升定义，不能提升值。
        //先提升函数，再提升变量
        fun()//B
        var fun=function(){//预解析时后提升，只提升定义，不提升值，即不提升函数。既没有提升能力  主场：用
            alert("A")
        }
        function fun(){//预解析时先提升，提升整个函数，包括函数体。即具有提升能力               主场：预解析
            alert('B')
        }
        fun()//A
    </script>
</body>
</html>